// 预加载脚本，用于安全地在渲染进程和主进程之间通信
import { contextBridge, ipcRenderer } from 'electron'

contextBridge.exposeInMainWorld('electronAPI', {
  // 在这里暴露安全的API给渲染进程
  send: (channel, data) => {
    // 白名单通道
    const validChannels = ['toMain']
    if (validChannels.includes(channel)) {
      ipcRenderer.send(channel, data)
    }
  },
  receive: (channel, func) => {
    const validChannels = ['fromMain']
    if (validChannels.includes(channel)) {
      ipcRenderer.on(channel, (event, ...args) => func(...args))
    }
  },
  // 添加文件夹选择功能
  selectFolder: () => ipcRenderer.invoke('select-folder'),
  // 添加对话框API
  showOpenDialog: (options) => ipcRenderer.invoke('show-open-dialog', options),
  // 添加读取目录功能
  readDir: (path) => ipcRenderer.invoke('read-dir', path),
  // 添加读取文件功能(支持二进制模式)
  readFile: (path, encoding) => ipcRenderer.invoke('read-file', { path, encoding }),
  // 添加在文件管理器中显示文件功能
  showItemInFolder: (path) => ipcRenderer.invoke('show-item-in-folder', path),
  // 暴露electron shell API
  shell: {
    showItemInFolder: (path) => ipcRenderer.invoke('show-item-in-folder', path)
  }
})